Convertir un nombre significa usar su representaci�n string (java.lang.String) para obtener su representaci�n estructural (Name).
El JNDI proporciona un analizador de nombres para nombres mixtos y un interface gen�rico para analizar nombres compuestos. Los proveedores de servicios proporcionan las implementaciones reales de los analizadores de nombres para nombres compuestos exportados por sus espacios de nombres.
�Convertir Nombres Mixtos
Para convertir un nombre mixto, podemos usar su representaci�n string en el constructor de CompositeName.
Por ejemplo, el siguiente c�digo convierte el nombre string en un nombre estructurado, CompositeName
// Parse the string name into a CompositeName
Name cname = new CompositeName(
"cn=homedir,cn=Jon Ruiz,ou=people/tutorial/report.txt");
Puedes ver la secci�n Nombres Mixtos para ver ejemplos de c�mo acceder y cambiar los componentes de un CompositeName.
�Convertir Nombres Compuestos
Para convertir un nombre compuesto, usamos el interface NameParser.
Este interface contiene un s�lo m�todo: Name parse(String name) throws InvalidNameException;
Sin embargo, primero debemos obtener un NameParser desde el proveedor de servicios que soporta el espacio de nombres. Aqu� tenemos un ejemplo que obtiene analizadores de nombres para espacios de nombres LDAP y espacios de nombres de ficheros.
// Create the initial context
Context ctx = new InitialContext();
// Get the parser for LDAP
NameParser ldapParser =
ctx.getNameParser("ldap://localhost:389/o=jnditutorial");
// Get the parser for filenames
NameParser fsParser = ctx.getNameParser("file:/");
Puedes ver la secci�n Nombres Compuestos para m�s ejemplos de c�mo obtener un ejemplar de� NameParser.
Una vez que tenemos un ejemplar de un NameParser, podemos usar su m�todo parse() para convertir nombres compuestos. Como una continuaci�n del ejemplo, podemos usar ldapParser para convertir un nombre string LDAP en su forma estructural, de esta forma
// Parse the name using the LDAP parser
Name compoundName = ldapParser.parse("cn=John Smith, ou=People, o=JNDITutorial");
De forma similar, podemos usar fsParser para convertir un nombre de fichero de esta forma.
// Parse the name using the LDAP parser
Name compoundName = fsParser.parse("tmp/tutorial/beyond/names/parse.html");
Observa que cada analizador determina la s�ntaxis de nombres que aceptar�.
Si suministramos un nombre de fichero v�lido que no es un nombre LDAP legal a un analizador LDAP, obtendremos una InvalidNameException.
Aunque parse() devuelve un Name, NameParser est� pensada para ser utilizada s�lo con nombres compuestos, no con nombres mixtos. El objeto devuelto por parse() podr�a o no ser un ejemplar de CompoundName.
El �nico requerimiento es que implemente el interface Name. El tipo exacto del objeto devuelto depende de la implementaci�n del proveedor de servicios.